package com.iwhalecloud.bss.kite.cucc.order.loader;

import com.iwhalecloud.bss.kite.dataservice.entity.inst.IInst;
import com.iwhalecloud.bss.kite.order.client.dto.OrderRequest;

/**
 * 实例加载器
 * @param <T>
 */
public interface IInstLoader<T extends IInst> {

    /**
     * 从orderRequest获取实例，如果orderRequest中没有此实例则从数据加载到orderRequest中
     * @param orderRequest
     * @param tableName
     * @param instId
     * @param custId
     * @return
     */
    T loadInst(OrderRequest orderRequest, String tableName, String instId, String custId);

    /**
     * 从数据库查询实例
     * @param tableName
     * @param instId
     * @param custId
     * @return
     */
    T getInst(String tableName, String instId, String custId);
}
